/**   
 * Copyright © 2019 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * 功能描述：
 * @Package: com.tce.disk 
 * @author: Yannis   
 * @date: 2019年9月26日 下午3:48:30 
 */
package com.tce.model;

import com.alibaba.fastjson.annotation.JSONField;

public class DataDisk {

	/**
	 * 数据盘大小，单位：GB。最小调整步长为10G，不同数据盘类型取值范围不同，具体限制详见：[CVM实例配置](/document/product/213/2177)。默认值为0，表示不购买数据盘。更多限制详见产品文档。
	 */
	private Integer DiskSize;

	/**
	 * 数据盘类型。数据盘类型限制详见[CVM实例配置](/document/product/213/2177)。取值范围：<br>
	 * <li>LOCAL_BASIC：本地硬盘<br>
	 * <li>LOCAL_SSD：本地SSD硬盘<br>
	 * <li>CLOUD_BASIC：普通云硬盘<br>
	 * <li>CLOUD_PREMIUM：高性能云硬盘<br>
	 * <li>CLOUD_SSD：SSD云硬盘<br>
	 * <br>
	 * 默认取值：LOCAL_BASIC。<br>
	 * <br>
	 * 该参数对`ResizeInstanceDisk`接口无效。
	 */
	private String DiskType;

	/**
	 * 数据盘ID。LOCAL_BASIC 和 LOCAL_SSD 类型没有ID。暂时不支持该参数。
	 */
	private String DiskId;

	/**
	 * 数据盘是否随子机销毁。取值范围：
	 * <li>TRUE：子机销毁时，销毁数据盘，只支持按小时后付费云盘
	 * <li>FALSE：子机销毁时，保留数据盘<br>
	 * 默认取值：TRUE<br>
	 * 该参数目前仅用于 `RunInstances` 接口。 注意：此字段可能返回 null，表示取不到有效值。
	 */
	private Boolean DeleteWithInstance;

	/**
	 * 数据盘快照ID。选择的数据盘快照大小需小于数据盘大小。 注意：此字段可能返回 null，表示取不到有效值。
	 */
	private String SnapshotId;

	/**
	 * @return the diskSize
	 */
	@JSONField(name = "DiskSize")
	public Integer getDiskSize() {
		return DiskSize;
	}

	/**
	 * @param diskSize the diskSize to set
	 */
	public void setDiskSize(Integer diskSize) {
		DiskSize = diskSize;
	}

	/**
	 * @return the diskType
	 */
	@JSONField(name = "DiskType")
	public String getDiskType() {
		return DiskType;
	}

	/**
	 * @param diskType the diskType to set
	 */
	public void setDiskType(String diskType) {
		DiskType = diskType;
	}

	/**
	 * @return the diskId
	 */
	@JSONField(name = "DiskId")
	public String getDiskId() {
		return DiskId;
	}

	/**
	 * @param diskId the diskId to set
	 */
	public void setDiskId(String diskId) {
		DiskId = diskId;
	}

	/**
	 * @return the deleteWithInstance
	 */
	@JSONField(name = "DeleteWithInstance")
	public Boolean getDeleteWithInstance() {
		return DeleteWithInstance;
	}

	/**
	 * @param deleteWithInstance the deleteWithInstance to set
	 */
	public void setDeleteWithInstance(Boolean deleteWithInstance) {
		DeleteWithInstance = deleteWithInstance;
	}

	/**
	 * @return the snapshotId
	 */
	@JSONField(name = "SnapshotId")
	public String getSnapshotId() {
		return SnapshotId;
	}

	/**
	 * @param snapshotId the snapshotId to set
	 */
	public void setSnapshotId(String snapshotId) {
		SnapshotId = snapshotId;
	}
	
}
